今天先談MySQL的Backup & Restore
我知道還要談MySQL Administrator的Server Parameters, 但真的內容太多, 所以, Server Parameters只好再延一天...
MySQL的Backup & Restore真的很簡單, 進入MySQL Administrator, 到Backup頁面:
在Project Name輸入個名稱, 再選擇要備份的資料庫, 可同時備份多個資料庫, 也可以在右邊的Object裏, 點一下資料庫名稱的左邊的小三角形, 展開資料庫物件, 然後選擇要備份的物件, 這樣MySQL就會把所有選要備份的物件統統備份起來...按一下[Start Backup], 會出現選擇備份檔案的視窗:
檔案名稱也都給了, 在下方的入中.._20091104_2044.sql(其實就是年月日_時分), 附加檔名是.sql, 難不成可可以用來執行的SQL指令集? 沒錯...確定備份檔名後按下[OK], 過一陣子出現:
告訴你備份完成了...按[OK]就完成備份了...這時可以去按[Save Project], 把備份專案存起來以後再用.
接著到還原(Restore):
看到左下方的窗格[Backup File to Restore]中有剛才的_20091104_2044嗎? 點一下:
問你要用什麼字元集還原, 預設是UTF8, 也就UNICODE, 就按[OK]接受了....
告訴你要還原的檔案的內容, 一般來說, 會把還原的物件放到原來的Schema中, 也可以另外建一個新的Schema, 或選擇其他已經存在的資料庫(Schema, 你沒看錯, MySQL的資料庫就是Schema), 然後按一下[Selectin]頁面, 出現物件選擇視窗, 我們可以選擇要還原的物件...
選擇好要還原物件, 按一下[Restore Backup], 就一切搞定...
接下來, 我門來看看在Backup功能的[Advanced Options]中有些選擇項:
首先是[Backup Execution], 通常會選擇[Lock All Table]或[Normal Backup]. 接著是一個[Backup Selected Database Completely], 完整備份, 不管你怎麼選, 全部備下來就是. 然後是[Output File Options], 就是在產生的.sql備份檔案中, 要包含或不要包含的指令的選項.
最後, 我把MySQL的備份檔案_20091104_2044.sql內容的頭50行抄在下面給各位參考, 沒錯, 就是一堆可執行的SQL指令集:
-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 5.1.32
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
--
-- Create schema mysql
--
CREATE DATABASE IF NOT EXISTS mysql;
USE mysql;
--
-- Definition of table `mysql`.`columns_priv`
--
DROP TABLE IF EXISTS `mysql`.`columns_priv`;
CREATE TABLE `mysql`.`columns_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges';
--
-- Dumping data for table `mysql`.`columns_priv`
--
/*!40000 ALTER TABLE `columns_priv` DISABLE KEYS */;
LOCK TABLES `columns_priv` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE `columns_priv` ENABLE KEYS */;
--
我公MYSQL的資料庫是用ahsay備份呀!詳細可以參考:
http://www.ahsay.com/jsp/tc/home/